/*
 * SerializableToCharArray.h
 *
 *  Created on: Feb 16, 2010
 *      Author: jgrande
 */

#ifndef SERIALIZABLETOCHARARRAY_H_
#define SERIALIZABLETOCHARARRAY_H_

#include <stdint.h>

#include "SerializableToFile.h"

namespace framework {
namespace io {


/**
 * Define la interfaz que deben implementar una clase para ser serializable
 * a un archivo representado por un file descriptor
 */
class SerializableToCharArray : public SerializableToFile {

public:
	/**
	 * Permite guardar el objeto en un arreglo
	 *
	 * @param arr puntero al arreglo donde se desea guardar el objeto
	 *
	 * @return cantidad de Bytes escritos en el archivo.
	 */
	virtual size_t saveToArray (uint8_t* arr) const = 0;

	/**
	 * Permite cargar el objeto desde un arreglo
	 *
	 * @param arr puntero al arreglo donde se pueden obtener los datos
	 * 			necesarios para recuperar el contenido del objeto (debe tener
	 * 			el formato que se obtiene con la ejecucion del metodo save).
	 *
	 * @return cantidad de Bytes leidos del archivo.
	 */
	virtual size_t loadFromArray (const uint8_t* arr) = 0;

};

}// namespace framework
}// namespace io

#endif /* SERIALIZABLETOCHARARRAY_H_ */
